import instance from "./request";
import type {Guers} from '@/type/infolist'

//一般情况下，接口类型会放到一个文件
// 下面两个TS接口，表示要传的参数
interface ReqLogin {
    name: string
}

interface ReqStatus {
    id: string
    navStatus: string
}

interface addGameuser {
    appid: string,
    name: string,
    secret: string
}

// Res是返回的参数，T是泛型，需要自己定义，返回对数统一管理***
type Res<T> = Promise<ItypeAPI<T>>;
// 一般情况下响应数据返回的这三个参数，
// 但不排除后端返回其它的可能性，
interface ItypeAPI<T> {
    data: T,//请求的数据，用泛型
    msg: string | null // 返回状态码的信息，如请求成功等
    code: number //返回后端自定义的200，404，500这种状态码
}

// post请求 ，没参数
export const LogoutAPI = (): Res<null> =>
    instance.post("/api/find_games");
// post请求，请求页面数据
export const loginAPI = (data: addGameuser): Res<addGameuser> =>
    instance.post("/api/games/save/all", data);
// post请求 ，没参数，但要路径传参
export const StatusAPI = (data: ReqStatus): Res<null> =>
    instance.post(`/api/productCategory?ids=${data.id}&navStatus=${data.navStatus}`);
//Game——数据请求
export const getGames = (): Res<null> => {
    console.log(' get games ==========>')
    return instance.get("/api/games_all");
}
// get请求，有参数，路径也要传参  (也可能直接在这写类型，不过不建议,大点的项目会维护一麻烦)
export const inofgameslist = (params: string): any =>
    instance.get(`/api/games/find?appid=${params}`);
// get请求，有参数，(如果你不会写类型也可以使用any,不过不建议,因为用了之后 和没写TS一样)
export const AdminListAPI = (params: any): any =>
    instance.get("/api/games/find", {params});
//游戏页面添加数据
export const GameEcpmAdd = (data: Guers[]): Res<Guers[]> =>
    instance.post("/api/ecpms_add", data);
//游戏ECPM查询
export const GameEcpmlist = (): Res<null> =>
    instance.get('/api/ecpms_all')
//游戏用户页面
export const GameUser = (): Res<null> =>
    instance.get("/api/users_all")